This page collects information on the CalculiX finite element solver, the default solver in the FEM Workbench for structural and thermo-mechanical analysis. Depending on the operating system you are working with, you'll need to install CalculiX before running your first simulation. Please see FEM Install.
The solver is able to do linear and non-linear calculations, for static, dynamic, and thermal problems. The solver operates on an Abaqus-like input file (.inp), which means it can be used with different pre-processors that support this format. The program includes its own graphical preprocessor which, however, is not used by FreeCAD, only the solver itself.
CalculiX is designed to run on Unix platforms like Linux and Irix computers but also on MS-Windows. CalculiX was developed by engineers from MTU Aero Engines, Munich, Germany, to assist them in designing machinery such as jet turbines. The software is currently released to the public on the terms of the GPL version 2.
Interaction between the FEM Workbench and CalculiX is done through writing and reading text files. The sequence of operations is as follows:
The FEM Control Solver tool manages the whole process. User interaction in the process is possible.
The input file that CalculiX uses can be prepared and edited before the solver is started. CalculiX doesn't use units and it's the user's responsibility to ensure that the same unit system is used consistently in the whole input deck. The units in which FreeCAD writes the input file are independent of the unit system set in FreeCAD's project or preferences. The input file is always written using the SI(mm) unit system:
The CalculiX interface supports the following objects:
More details about the supported CalculiX elements can be found on the FEM Mesh CalculiX page.
The legacy CalculiX implementation (SolverCcxTools object created if the Result object preference is disabled) in the FEM workbench loads the results into "CCX_Results" legacy result objects which will contain:
These objects show color maps without legend, but minimum and maximum values can be read from the task panel. Units shown there are adjusted based on the values (e.g. GPa for large stresses, mm for small displacements and so on). FreeCAD reads the results from the *.frd file which was created by CalculiX. If these results contain multiple time steps, each time step is imported to FreeCAD as a new result object. The same behavior applies for Frequency or Buckling analysis with multiple eigenvalues. Each result object contains the mode number or buckling factor value in its name and the Eigenmode Frequency shows the corresponding natural frequency.
The legacy CalculiX implementation also creates a multi-frame "Pipeline_CCX_Results" results pipeline object. The units there are currently inconsistent - the input SI(mm) system is used for most outputs apart from displacements (meters) and stresses (Pascals). So, for example, heat flux units are mW/mm^2.
Results available in the legacy CalculiX solver's pipeline object are:
The refactored CalculiX implementation (SolverCalculiX object created if the Result object preference is enabled) creates only a multi-frame "SolverCalculiXResult" results pipeline object. The units there are consistent with input SI(mm) units so displacements are in mm, stresses in MPa, heat flux in mW/mm^2 and so on.
Results available in the refactored CalculiX solver's pipeline object are:
Reaction forces can be found in ccx_dat_file which contains reaction force components (fx, fy, fz) for each fixed boundary condition and for each displacement boundary condition which constrains translation degrees of freedom. Displacements, reaction forces and moments are also printed there for degrees of freedom constrained at rigid body constraint reference nodes.
The same file contains eigenvalue output for frequency analyses and buckling factor for buckling analyses.